<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #box{
            width: 100px;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div id="box"></div>
    <p>
        <input class="con" type="text">
        <span class="tips"></span>
    </p><button class="btn">点击</button>
</body>
<script>
    // 错误类型
        // Error            通用错误
        // EvalError        错误类型与eval有关，当调用eval()失败时抛出
        // RangeError       数值变量或参数超出了其有效范围
        // ReferenceError   无效的引用(eg:变量为声明)
        // SyntaxError      语法错误
        // TypeError        变量或参数不属于有效类型

    // try catch finally  通常用于处理代码中的可能出现的错误信息

    try{
        // 语法错误
            // var result = a;
        // 手动抛错
            throw hhh;
        // 自己创建一个错误
            // var err = new Error("哈哈哈,我错了");
            // console.log(err);

    } catch(err) {   // try的内容错误时会被catch捕获
        console.log(err)
    } finally {     //  不管成功失败都会执行  可以不写
        console.log("代码执行完毕"); 
    }



    // 应用
        // 1.写兼容     常规浏览器语法错误后可以进行补救
            var box = document.getElementById("box");
            console.log(getStyle(box,"width"));

            function getStyle(ele,attr) {
                try {
                    return window.getComputedStyle(ele)[attr];
                } catch (err) {
                    return ele.currentStyle[attr];
                }
            }

        // 2.用户可以根据自己的需要手动传递信息
            var conInp = document.getElementsByClassName("con")[0];
            var btn = document.getElementsByClassName("btn")[0];
            var tips = document.getElementsByClassName("tips")[0];

            btn.onclick = function () {
                try {
                    var con = conInp.value;
                    if(con == "") throw "请输入参数";
                    if (isNaN(con)) throw "请输入数字";
                    if(con < 0) throw "请输入大于0的数";
                    if(con > 100) throw "请输入小于100的数";
                    tips.style.color = "green";
                    tips.textContent = "OK";
                } catch (err) {
                    tips.style.color = "red";
                    tips.textContent = err;
                }
            }

            

</script>
</html>